1. Field of the Invention
This invention relates generally to electronic networks, and relates more particularly to a system and method for locally caching remote query replies in an electronic network.
2. Description of the Background Art
Implementing an effective method for managing communications between software elements that reside on electronic devices within an electronic network is a significant consideration for manufacturers and designers of contemporary electronic devices. An electronic device in a distributed electronic network may advantageously communicate with other remote electronic devices in the network to share and substantially increase the resources available to individual devices in the network. For example, an electronic network may be implemented in a user""s home to enable flexible and beneficial sharing of resources between various consumer electronic devices, such as personal computers, digital video disk devices, digital set-top boxes for digital broadcasting, television sets, and audio playback systems.
Managing and controlling efficient communications in a network of electronic devices may create substantial challenges for designers of electronic networks. For example, enhanced demands for increased functionality and performance many require more system processing power and require additional hardware resources across the network. An increase in processing or hardware requirements may also result in a corresponding detrimental economic impact due to increased production costs and operational inefficiencies.
Network size and device functionality are also factors that affect the control and management of an electronic network. Communications in an electronic network typically become more complex as the number of individual devices or nodes increases. Assume that a particular device on an electronic network is defined as a local device with local software elements, and other devices on the electronic network are defined as remote devices with remote software elements. Accordingly, a local software element on the local device may need to communicate with various remote software elements on remote devices across the electronic network. However, successfully managing a substantial number of electronic devices across a single network may provide significant benefits to a system user. Furthermore, enhanced device capability to perform various advanced functions may provide additional benefits to a system user, but may also place increased demands on the control and management of various devices in the electronic network. For example, an electronic network that effectively accesses, processes, and displays digital television programming may benefit from efficient network management techniques because of the large amount and complexity of the digital data involved.
In addition, initiating and managing complex messaging processes between various devices over an extended electronic network may consume substantial amounts of processing resources from the various devices that form the electronic network. For example, as the number of devices and corresponding software elements on an electronic network increase, a given message that is repeatedly propagated to software elements across the electronic network may create an undue amount of network traffic and thus have an adverse effect on overall performance of the electronic network.
Therefore, for all the foregoing reasons, implementing an effective method for managing communications between various software elements in a distributed electronic network remains a significant consideration for designers, manufacturers, and users of electronic devices.
In accordance with the present invention, a system and method are disclosed for locally caching remote query replies in an electronic network. In one embodiment of the present invention, initially, a local software module creates a local query to locate a desired target software element for a network messaging process. The local software module then preferably propagates the local query to a local registry which responsively performs a local lookup procedure to determine whether any locally-registered software elements satisfy the local query transmitted from the local software module.
In accordance with the present invention, the local lookup procedure includes checking the local registry for a local element registration corresponding to the desired target software element of the query. In addition, the local lookup procedure also preferably includes examining a local cache for a remote element registration corresponding to the desired target software element.
If the local query is successful and a locally-registered software element is found that satisfies the query criteria, then the local registry returns a software element identifier (SEID) corresponding to that locally-registered software element to the local software module, and the query process terminates. However, if the local query is not successful, then the local registry builds a remote query that preferably includes the same or similar criteria as the prior local query. The local registry then broadcasts the remote query to all remote registries located on other devices across the electronic network to locate a remote target software element that satisfies the remote query.
The local registry then preferably gathers remote query replies from all remote registries across the electronic network. The local registry next determines whether the remote query was successful in locating at least one remote target software element for the local software module message. If the remote query successfully locates a remote target software element, then, the local registry creates a remote element registration that corresponds to, and uniquely identifies, the remote target software element.
The local registry then advantageously stores the remote element registration into a local cache, in accordance with the present invention. In some embodiments, the remote element registration preferably includes a unique remote software element identifier (SEID) to identify and locate the remote target software element during a messaging process. The local software module may then locally access the SEID of the remote target software element to efficiently communicate with the remote target software element.
Because the foregoing remote query process typically requires excessive messaging across the electronic network, and also consumes substantial amounts of processing resources, the present invention therefore gradually builds up information in the local cache regarding remote software elements that are of interest to the local software module, to thereby effectively reduce network traffic and decrease query response time. The present invention thus efficiently maintains a local cache of remote query replies in the electronic network.